/**
 * dchen 2015-12-02 Jquery扩展：输入数字校验不通过时，自动重置光标，比如输入123a时，当输入完a会自动删除a，小数位数同理
 * eq：$(this).changeNotFormatebleWord(2) 输入框要求保留两位小数
 */
(function($) {
	jQuery.fn.extend({
		"changeNotFormatebleWord" : function(doubleLimit) {

			var input = this.val() + '';
			if (input == null || input == '') {
				return;
			}
			// 替换不符合数字规则的字符。
			input = input.replace(/[^\d+(.^\d{1,3})]/g, '');
			input = input.replace(',', '.');
			input = input.replace('。', '.');
			// 判断是否为有效数字，为零，不通过。各参数：1.报错信息。2.输入值。3.小数点后的限制位数。
			if (input[0] == '.') {
				input = '0';
			}

			var r = new RegExp("[.]", "gi");
			if (input.match(r) != null && input.match(r).length > 1) {
				input = input.replace(r, '');
			}

			if (input < 1 && input > 0) {
				input = (input + '').replace(/^0+\./g, '0.');
			} else if (parseInt(input) == 0 && (input + '').indexOf('.') < 0) {
				input = 0;
			} else {
				input = input.match(/^0+[1-9]+/) ? input = input.replace(
						/^0+/g, '') : input;
			}

			var idx = (input + '').indexOf(".");
			if (idx > 0) {
				var n = input.length - idx - 1;
				if (doubleLimit < n) {
					var e = Math.pow(10, doubleLimit);
					input = Math.round(input * e) / e;
				}
			}
			if (doubleLimit == 0) {
				input = input.replace('.', '');
			}
			// 加此判断，主要是放置在未改变值的按键事件下重置光标
			if (input != (this.val() + '')) {
				this.val(input);
			}
		},
		// 输入框不能写0
		"notZero" : function() {
			var input = this.val() + '';
			if (input == null || input == '') {
				return;
			}
			if (input == '0'||Number(input)==0) {
				this.val('');
			}
		}
	});
})(jQuery);
